function cmdlet-name
{
    <#
        .Synopsis
            What it does
        .Description
            More detail on what it does including defaults and such
        .Parameter <parameter name> 
            What the paramter is used for
        .Example
            Example of Use (try to add one for each parameter set)
        .OUTPUTS
            .NET Type of Object it outputs
        .INPUTS
            .NET type of Inputs
        .Link
            Any cmdlets/functions/scripts that are similar
         NAME:      Name of cmdlet
         AUTHOR:    $Author$
         Website:   $HeadURL$
         LASTEDIT:  $LastChangedDate$
         Version:   $Rev$
         #Requires -Version 2.0
    #>
    [CmdletBinding(SupportShouldProcess=$true)]
    
    Param(
        [Parameter(ValueFromPipeline=$true,Mandatory=$True)]
        [string]$RequiredParameter,
        [Parameter()]
        [int]$OptionalParameter,
        [Parameter()]
        [Switch]$SwitchParameter
        )
    Begin
    {
        Write-Verbose ""
        Write-Verbose " [Begin] :: Start BeginBlock"
        function Foo
        {
            Write-Verbose " [FOO] :: Message"
            "Foo"
        }
        Write-Verbose " [Begin] :: End BeginBlock"
        Write-Verbose ""
    }
    
    Process
    {
        Write-Verbose ""
        Write-Verbose " [PROCESS] :: Start ProcessBlock"

        Write-Verbose " [PROCESS] :: End ProcessBlock"
        Write-Verbose ""
    }
    
    End
    {
        Write-Verbose ""
        Write-Verbose " [END] :: Start EndBlock"

        Write-Verbose " [END] :: End EndBlock"
        Write-Verbose "" 
    }
}
